package com.zzw.hj93;

import java.util.Scanner;

/**
 * @Project: hw_java
 * @Description: 数组分组
 * @Author: zzw
 */

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int[] nums = new int[n];
        for (int i = 0; i < n; i++) {
            nums[i] = in.nextInt();
        }
        System.out.println(canSum(nums, 0, 0, 0));
    }

    // 递归，index表示当前的数字在数组中的位置，sum1表示第一组数的和，sum2表示第二组数的和
    public static boolean canSum(int[] nums, int index, int sum1, int sum2) {
        // 递归的终止条件，当遍历到最后一位时，检查sum1是否等于sum2，如相等，则返回true
        if (index == nums.length) {
            return sum1 == sum2;
        }
        // 将5放进第一组数，sum1加上该数，index + 1表示遍历到下一组数
        if (nums[index] % 5 == 0) {
            return canSum(nums, index + 1, sum1 + nums[index], sum2);
        } else if (nums[index] % 3 == 0) { //将3放进第二组数
            return canSum(nums, index + 1, sum1, sum2 + nums[index]);
        } else {
            // 尝试把非3非5的数放进第一组
            if (canSum(nums, index + 1, sum1 + nums[index], sum2)) {
                return true;
            }
            // 尝试把非3非5的数放进第二组
            return canSum(nums, index + 1, sum1, sum2 + nums[index]);
        }
    }
}